//send方法其实可以有两个参数 ，第一个参数是任意类型 第二个参数只能是
// 1. http的server
// 2. net的server或则socket

/*
/* subprocess.send(message[, sendHandle[, options]][, callback])

message <Object>
sendHandle <Handle>

options <Object> options 参数（如果存在）是一个对象，用于参数化某些类型句柄的发送。options 支持以下属性：
  + keepOpen <boolean> 传给 net.Socket 实例时可以使用的值。当设为 true 时，则 socket 在发送过程中会保持打开状态。默认值: false。

callback <Function>
返回: <boolean>



当父进程和子进程之间已建立了一个 IPC 通道时（例如，使用 child_process.fork()）， subprocess.send() 方法可用于发送消息到子进程。 当子进程是一个 Node.js 实例时，则消息可以通过 'message' 事件接收。

消息通过序列化和解析进行传递，接收到消息可能跟最初发送的不完全一样。

subprocess.send(message[, sendHandle[, options]][, callback])

子 Node.js 进程有一个自己的 process.send() 方法，允许子进程发送消息回父进程。

当发送 {cmd: 'NODE_foo'} 消息时有一种特殊情况。 cmd 属性中包含 NODE_ 前缀的消息是预留给 Node.js 内核内部使用的，将不会触发子进程的 'message' 事件。 相反，这种消息可使用 'internalMessage' 事件触发，且会被 Node.js 内部消费。 应用程序应避免使用此类消息或监听 'internalMessage' 事件，因为它可能会被更改且不会通知。

可能传给 subprocess.send() 的可选的 sendHandle 参数用于将 TCP 服务器或 socket 对象传给子进程。
子进程将会接收该对象作为传给在 'message' 事件上注册的回调函数的第二个参数。
在 socket 中接收和缓冲的任何数据都不会被发送给子进程。

可选的 callback 是一个函数，它在消息被发送之后、子进程已收到消息之前被调用。 该函数被调用时只有一个参数：当成功时是 null，当失败时是一个 Error 对象。

如果没有提供 callback 函数，且消息无法被发送，则 ChildProcess 对象将会触发 'error' 事件。 这是有可能发生的，例如当子进程已经退出时。

如果通道已关闭、或当未发送的消息的积压超过阈值使其无法发送更多时， subprocess.send() 将会返回 false。 否则，该方法返回 true。 callback 函数可用于实现流量控制。
*/

//http://nodejs.cn/api/child_process.html#child_process_subprocess_send_message_sendhandle_options_callback

